FRCSPN
Java • JavaFX • Eclipse • Git • User Interface
Jan 2018 - Apr 2018

In FRC competitions, scouting is a very important part to gain knowledge about the capabilities of other teams’ robots. This is important for creating alliances, as you would want a team that performs well and has a strategy that pairs well with your own. As such, this information is essential for teams who are alliance captains and choose teams to be in their alliances, as well as other teams who would know they should appeal to. Usually, our team would watch other robots and record what features they have, how much they scored, etc. However, this generates a vast amount of data, which can be unorganized.

The main screen after opening the FRCSPN app

Our team wanted to create an application named FRCSPN that would help organize this data, and possibly add some analysis to it, such as predicting match outcomes given certain alliances. We utilized a website called The Blue Alliance, which had vast amounts of team and match data for many years of FRC competitions. We wanted to base our application with that to use sample data from past competitions, then use real-time data from our scouting. We used JavaFX for our UI as most team members knew how to use it from our school’s APCS course.

The Team Events interface

We first worked on a “Team Events” interface for displaying data of teams we wanted to keep track of. We had a sidebar for different categories of teams, where you could add or remove teams from each category. The teams were displayed on the main window on the right side, and it would have columns of stacked team numbers. The numbers can be clicked to reveal the events that the team would be attending, and it would include the event name, location, and dates.

The Matches interface

Our second interface, “Matches”, would first bring the user to a window where it listed all of the events for this season on the left side, and it would display data about the event on the right side. This data included the name, dates, location, and event code/key. There was a search bar on the top to filter out events by name. The top also included immediate upcoming events for easy access. There is a button for selecting the event.

After selecting an event, the application would display the information about the matches for the selected event. It would display previously recorded scout data from the outcome of the matches, and users would be able to record scout data onto the application. Then, the data can be sorted and organized to best fit the user’s needs.

The loading screen that I was in charge of

I primarily worked on the UI design and implementation of the Team Events and Match selection interfaces. In particular, I helped create classes to represent different components of the UI. I ensured that the UI was modular, clean, and easy-to-use for users. I also worked on a loading screen for when the program was still gathering and processing data from Blue Alliance. Other team members worked on gathering data from the website by accessing their API and other interfaces. I regularly checked in with our project lead to make sure that the UI fit with his expectations, and was in charge of integrating features from multiple developers.

For future work, we wanted to use the data recorded on the application and use a neural network to predict what alliances would win given teams in each alliance. We thought it would be best if a different language was used, and if we could have a web application instead of a desktop application.


©2021 by Julia Shuieh